#ifndef __GSM_SIM_H_
#define __GSM_SIM_H_


#include "gsm.h"

#define lgsm_sim_get_auth_status              SIM_Command_QueryPINstatus

#define SIM_ERR_NO_CARD     10


typedef enum 
{

  SIM_UNKNOWN=0,      

  SIM_INIT, 

  SIM_ERROR,          

  SIM_MISSING,        

  SIM_NEED_PIN,       

  SIM_NEED_PUK,       

  SIM_READY,          
} SIM_Status;


struct SIMInterface
{

  /**************************Replies to method calls*************************/

  /*********************Error replies to method calls********************/

  void (*set_sim_own_number_error) ( void* ipc_data );

  void (*get_service_center_number_error) ( void* ipc_data );

  void (*set_service_center_number_error) ( void* ipc_data );

  void (*get_auth_status_error) ( void* ipc_data );

  void (*send_auth_code_error) ( void* ipc_data );

  void (*unlock_error) ( void* ipc_data );

  void (*change_auth_code_error) ( void* ipc_data );

  void (*get_sim_info_error) ( void* ipc_data );

  void (*store_message_error) ( void* ipc_data );

  void (*retrieve_message_error) ( void* ipc_data );

  void (*auth_status) ( SIM_Status status );

  void (*generalAtWithSIMReady) (void* ipc_data );
  /********************************Signals***********************************/
};



extern void SIM_Command_QueryPINstatus ( void* ipc_data );

#endif


